package com.nuance.assignment.fileInfo.server.service;

import java.util.List;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import com.nuance.assignment.fileInfo.server.validation.constraints.IsDirectory;
import com.nuance.assignment.fileInfo.server.validation.constraints.PathExists;
import com.nuance.assignment.fileInfo.shared.FileDTO;
import com.nuance.assignment.fileInfo.shared.PageDTO;

/**
 * Service interface for File Info logic.
 * 
 * @author parag
 *
 */
public interface FileInfoService {

	public PageDTO<FileDTO> getChildren(
			@NotNull(message = "error.path.null") 
			@PathExists(message = "error.file.exists.not") 
			@IsDirectory(message = "error.directory.not") String path,
			@NotNull PageDTO<FileDTO> pageDTO);

	public PageDTO<FileDTO> getRoots(@NotNull PageDTO<FileDTO> pageDTO);

	public List<String> getSuggestions(String path, @Min(0) int size);

}
